#ifndef _OCPP_GridData_H__
#define _OCPP_GridData_H__

#include "GridExtent.h"
#include "GridDataValue.h"

namespace OCPP
{
	namespace Volume
	{
		class _volumeExport GridData
		{
		public:
			void read(const VolumeOptions& options);
			std::shared_ptr<GridDataReader> dataReader = nullptr;
			String time, level,varName, levelUinits;
			FloatVector levelData;
			FloatVector minMaxValue;
			GridExtent			extent;
			GridDataValuePtr	gridDataValue;

			GridData shallowCopy();

			void flipXIf(const VolumeOptions& options);
			void flipYIf(const VolumeOptions& options);
			void clipIf(const VolumeOptions& options);
			void reverseZ(const VolumeOptions& options);
			void setPositive(const VolumeOptions& options);
		};

		using GridDataVec = std::vector<GridData>;
	}
}


#endif // !_OCPP_NcOptions_H__
